/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package futbol.tacticas.concursantes.aitkiar.aitutil;

import java.awt.Point;

/**
 *
 * @author aitkiar
 */
public class ZonaCampo
{
    protected int x;
    protected int y;
    protected int lado;
    protected Point pase;
    protected int nContrarios;
    protected int nJugadores;
    
    /** Constructor por defecto.
     * 
     * Inicialmente consideramos que todas las zonas están vacías y que el número de contrarios en 
     * ellas es cero. Así mismo, consideramos el pase óptimo dentro de la zona el que va al centro de
     * la misma.
     * @param x
     * @param y
     * @param lado
     */
    public ZonaCampo( int x, int y, int lado )
    {
        this.x = x;
        this.y = y;
        this.lado = lado;
        this.pase = new Point ( x + lado / 2, y + lado / 2 );
    }
    
    public boolean dentro( Point p )
    {
        return  p.x >= x && p.x <= x+lado && p.y > y && p.y < y + lado;
    }
    
    public int dentro( Point[] p )
    {
        int cuenta = 0;
        for ( int i = 0; i < p.length; i ++ )
        {
            if ( dentro( p[i] ))
            {
                cuenta ++;
            }
        }
        return cuenta;
    }
    
    public boolean contrariosDentro( Point[] contrarios )
    {
        this.nContrarios = dentro ( contrarios );
        return this.nContrarios > 0;
    }
    
    public boolean jugadoresDentro( Point[] jugadores )
    {
        this.nJugadores = dentro( jugadores );
        return this.nJugadores > 0;
    }
}
